#ifndef VERSION_H
#define VERSION_H

#include <vector>

namespace qrcode{

class Version
{
private:
    int version;                   //版本号
    char errorCorrectionLevel;     //纠错等级
    int numDataBits;               //数据位总数
    int numDataCodewords;          //数据码字总数
    int ECCodewordsPerBlock;       //每块的纠错码字数量
    int blockInGroup1;             //第一组的块数
    int numDataCodewordsInGroup1;  //第一组每块的码字数
    int blockInGroup2;             //第一组的块数
    int numDataCodewordsInGroup2;  //第一组每块的码字数

    int numeric;                   //数字模式容量
    int alphanumeric;              //字母数字模式容量
    int byte;                      //8位字节模式容量
    int eci;                       //使用8位字节传输数据
    int hanzi;                     //汉字模式容量

public:
    Version();
    Version(int version, char errorlevel, int numDataBits, int numDataCodewords,
            int numeric, int alphaNumeric, int byte, int hanzi, int ECCodewordsPerBlock,
            int blockInGroup1, int numDataCodewordsInGroup1,
            int blockInGroup2, int numDataCodewordsInGroup2);
    int GetVersion();
    char GetErrorCorrectionLevel();
    int GetNumDataBits();
    int GetNumDataCodewords();
    int GetNumeric();
    int GetAlphaNumeric();
    int GetByte();
    int getEci() const;
    int GetHanzi();
    std::vector<int> GetBreakInfo();
};

}

#endif // VERSION_H
